package com.mysoft.gfyx.clue.service;


import com.mysoft.framework.modeling.dto.FieldsSetting;
import com.mysoft.framework.modeling.dto.ListDataResult;
import com.mysoft.framework.modeling.dto.LoadDataParams;
import com.mysoft.framework.modeling.dto.OptionItem;
import com.mysoft.gfyx.clue.controller.dto.*;
import com.mysoft.gfyx.clue.dao.entity.Clue;
import com.mysoft.gfyx.clue.dao.entity.Cluefollowprojectinfo;
import com.mysoft.gfyx.clue.service.dto.ClueDto;

import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;

import com.mysoft.gfyx.clue.service.dto.ClueFollowProjectInfoDto;
import com.mysoft.gfyx.clue.service.dto.CustomerDto;
import org.springframework.stereotype.Service;


/**
 * 描述：Clue 接口层
 *
 * @author JavaSdk generator
 * @date 2022-07-07
 */

public interface ClueService {
    boolean updateById(ClueDto clueDto, UUID id);

    int getMyClueCount();

    boolean changeCooperationStatus(Integer status, UUID id);

    Clue checkAndAddClue(AddClueRequestDto clueDto);

    Clue addClue(ClueDto clueDto, List<Cluefollowprojectinfo> cluefollowprojectinfos);

    ClueDto getClue(Map<String, Object> conditions);

    ClueDto getClueBySource(GetClueSourceFollowRecordsRequestDto dto);

    int countDeveloperClue(String developerCreditCode);

    ClueDto clueDetail(UUID id);

    Boolean deleteClue(UUID id);

    Set<String> isAdded(List<String> clueSourceId);

    FieldsSetting loadClueFields();

    ListDataResult myClue(LoadDataParams params);

    ListDataResult regionClue(LoadDataParams params);

    List<Cluefollowprojectinfo> getClueProjects(UUID id);

    void addClueProject(Cluefollowprojectinfo cluefollowprojectinfo);

    void updateClueProject(Cluefollowprojectinfo cluefollowprojectinfo);

    void deleteClueProject(DeleteByIdRequestDto dto);

    ClueFollowProjectInfoDto getClueProjectById(UUID id);

    List<OptionItem> searchCompanyQuery(SearchCompanyQueryRequestDto dto);
}

